
import {createUser} from './tables/users.js'
import {createTask} from './tables/task.js'
import {createRecentPlan} from './tables/recentPlan.js'

export function dbInit(){
    // 该对象包含三种事件
    let request = window.indexedDB.open('yiRiZhiJi')

    request.onerror = function(event){
        console.log('数据库打开报错')
    }

    let  db;
    request.onsuccess = function(event){
        db = request.result; //获取数据库对象
        console.log('数据库打开成功')

        let userStore =  db.transaction(['user']).objectStore('user')
        let userIndex = userStore.index('userName')
        let userRequest = userIndex.get('visitor')

        userRequest.onerror = function(event){
            console.log('事务失败')
        }

        userRequest.onsuccess = function(event){
            let result = event.target.result
            // 更新存储区域的 token 和 userInfo
            sessionStorage.setItem('token',result.token)
            sessionStorage.setItem('userInfo',JSON.stringify({
                userName:result.userName,
                roles:result.roles,
                lastLoginTime:result.loginTime
            }))
            // 添加一个本地缓存标识
            sessionStorage.setItem('localDb','true')
        }
    }

    // 打开数据库时候，如果所传第二个参数大于当前数据库版本时候触发，初次创建也会触发 
    // 数据库升级事件
    // 初次建表操作在此处执行
    request.onupgradeneeded  = function(event){
        console.log('库表更新中')
        db = event.target.result  //获取数据库实例
        //创建表
        createUser(db);
        createTask(db);
        createRecentPlan(db);
    }
}
